package com.i8office.android.zhihuixinwu.bean;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by pc on 2018/7/7.
 */

public class Send {

    /**
     * PathName :
     * Node : {"Tag":"","MessageID":"55efc250-265d-445f-8e87-f0ee907fd49c","NodeKey":"NODE0004","NodeName":"领导签批","NodeStatus":3,"NodeType":2,"NodeDescr":"","HandlerAddress":"dynamic","HandlerID":"","InTime":"/Date(1530852311977)/","OutTime":"/Date(1530852658820)/","TimeLimit":"","OutTimeExpected":"/Date(32503564800000)/","SendMode":0,"MultiHandleMode":1,"MultiProcessMode":0,"EntrustBy":"","ExpireProcess":"","NodeCondition":"","NodeComment":"","ReportToManager":0,"NodePass":"","NodeOptions":"{}","SubflowConfig":"","NeedSign":0,"Message":{},"InTimeFriendlyStr":"昨天"}
     * HandlerDescr : 动态指定
     * HandlerList : []
     * ProcModeOptionList : []
     * ProcMode : multi
     * TargetName : 领导签批
     */

    private String PathName;
    private NodeBean Node;
    private String HandlerDescr;
    private String ProcMode;
    private String TargetName;
    private List<People> HandlerList;
    private List<?> ProcModeOptionList;
    private Map<String,People> chooseMap = new HashMap<>();
    public String getPathName() {
        return PathName;
    }

    public void setPathName(String PathName) {
        this.PathName = PathName;
    }

    public NodeBean getNode() {
        return Node;
    }

    public void setNode(NodeBean Node) {
        this.Node = Node;
    }

    public String getHandlerDescr() {
        return HandlerDescr;
    }

    public void setHandlerDescr(String HandlerDescr) {
        this.HandlerDescr = HandlerDescr;
    }

    public String getProcMode() {
        return ProcMode;
    }

    public void setProcMode(String ProcMode) {
        this.ProcMode = ProcMode;
    }

    public String getTargetName() {
        return TargetName;
    }

    public void setTargetName(String TargetName) {
        this.TargetName = TargetName;
    }

    public List<People> getHandlerList() {
        return HandlerList;
    }


    public void setChooseList(List<People> chooseList) {
        chooseMap.clear();
        addChooseList(chooseList);
    }
    public void addChooseList(List<People> chooseList) {
        for (People p:chooseList){
            chooseMap.put(p.getEmplID(),p);
        }
    }
    public List<People> getChooseList() {
        return new ArrayList<>(chooseMap.values());
    }

    public Map<String, People> getChooseMap() {
        return chooseMap;
    }

    public void removeChoosePeople(People people){
        chooseMap.remove(people.getEmplID());
    }

    public void setHandlerList(List<People> HandlerList) {
        this.HandlerList = HandlerList;
    }

    public List<?> getProcModeOptionList() {
        return ProcModeOptionList;
    }

    public void setProcModeOptionList(List<?> ProcModeOptionList) {
        this.ProcModeOptionList = ProcModeOptionList;
    }

    public static class NodeBean {
        /**
         * Tag :
         * MessageID : 55efc250-265d-445f-8e87-f0ee907fd49c
         * NodeKey : NODE0004
         * NodeName : 领导签批
         * NodeStatus : 3
         * NodeType : 2
         * NodeDescr :
         * HandlerAddress : dynamic
         * HandlerID :
         * InTime : /Date(1530852311977)/
         * OutTime : /Date(1530852658820)/
         * TimeLimit :
         * OutTimeExpected : /Date(32503564800000)/
         * SendMode : 0
         * MultiHandleMode : 1
         * MultiProcessMode : 0
         * EntrustBy :
         * ExpireProcess :
         * NodeCondition :
         * NodeComment :
         * ReportToManager : 0
         * NodePass :
         * NodeOptions : {}
         * SubflowConfig :
         * NeedSign : 0
         * Message : {}
         * InTimeFriendlyStr : 昨天
         */

        private String Tag;
        private String MessageID;
        private String NodeKey;
        private String NodeName;
        private int NodeStatus;
        private int NodeType;
        private String NodeDescr;
        private String HandlerAddress;
        private String HandlerID;
        private String InTime;
        private String OutTime;
        private String TimeLimit;
        private String OutTimeExpected;
        private int SendMode;
        private int MultiHandleMode;
        private int MultiProcessMode;
        private String EntrustBy;
        private String ExpireProcess;
        private String NodeCondition;
        private String NodeComment;
        private int ReportToManager;
        private String NodePass;
        private String NodeOptions;
        private String SubflowConfig;
        private int NeedSign;
        private MessageBean Message;
        private String InTimeFriendlyStr;

        public String getTag() {
            return Tag;
        }

        public void setTag(String Tag) {
            this.Tag = Tag;
        }

        public String getMessageID() {
            return MessageID;
        }

        public void setMessageID(String MessageID) {
            this.MessageID = MessageID;
        }

        public String getNodeKey() {
            return NodeKey;
        }

        public void setNodeKey(String NodeKey) {
            this.NodeKey = NodeKey;
        }

        public String getNodeName() {
            return NodeName;
        }

        public void setNodeName(String NodeName) {
            this.NodeName = NodeName;
        }

        public int getNodeStatus() {
            return NodeStatus;
        }

        public void setNodeStatus(int NodeStatus) {
            this.NodeStatus = NodeStatus;
        }

        public int getNodeType() {
            return NodeType;
        }

        public void setNodeType(int NodeType) {
            this.NodeType = NodeType;
        }

        public String getNodeDescr() {
            return NodeDescr;
        }

        public void setNodeDescr(String NodeDescr) {
            this.NodeDescr = NodeDescr;
        }

        public String getHandlerAddress() {
            return HandlerAddress;
        }

        public void setHandlerAddress(String HandlerAddress) {
            this.HandlerAddress = HandlerAddress;
        }

        public String getHandlerID() {
            return HandlerID;
        }

        public void setHandlerID(String HandlerID) {
            this.HandlerID = HandlerID;
        }

        public String getInTime() {
            return InTime;
        }

        public void setInTime(String InTime) {
            this.InTime = InTime;
        }

        public String getOutTime() {
            return OutTime;
        }

        public void setOutTime(String OutTime) {
            this.OutTime = OutTime;
        }

        public String getTimeLimit() {
            return TimeLimit;
        }

        public void setTimeLimit(String TimeLimit) {
            this.TimeLimit = TimeLimit;
        }

        public String getOutTimeExpected() {
            return OutTimeExpected;
        }

        public void setOutTimeExpected(String OutTimeExpected) {
            this.OutTimeExpected = OutTimeExpected;
        }

        public int getSendMode() {
            return SendMode;
        }

        public void setSendMode(int SendMode) {
            this.SendMode = SendMode;
        }

        public int getMultiHandleMode() {
            return MultiHandleMode;
        }

        public void setMultiHandleMode(int MultiHandleMode) {
            this.MultiHandleMode = MultiHandleMode;
        }

        public int getMultiProcessMode() {
            return MultiProcessMode;
        }

        public void setMultiProcessMode(int MultiProcessMode) {
            this.MultiProcessMode = MultiProcessMode;
        }

        public String getEntrustBy() {
            return EntrustBy;
        }

        public void setEntrustBy(String EntrustBy) {
            this.EntrustBy = EntrustBy;
        }

        public String getExpireProcess() {
            return ExpireProcess;
        }

        public void setExpireProcess(String ExpireProcess) {
            this.ExpireProcess = ExpireProcess;
        }

        public String getNodeCondition() {
            return NodeCondition;
        }

        public void setNodeCondition(String NodeCondition) {
            this.NodeCondition = NodeCondition;
        }

        public String getNodeComment() {
            return NodeComment;
        }

        public void setNodeComment(String NodeComment) {
            this.NodeComment = NodeComment;
        }

        public int getReportToManager() {
            return ReportToManager;
        }

        public void setReportToManager(int ReportToManager) {
            this.ReportToManager = ReportToManager;
        }

        public String getNodePass() {
            return NodePass;
        }

        public void setNodePass(String NodePass) {
            this.NodePass = NodePass;
        }

        public String getNodeOptions() {
            return NodeOptions;
        }

        public void setNodeOptions(String NodeOptions) {
            this.NodeOptions = NodeOptions;
        }

        public String getSubflowConfig() {
            return SubflowConfig;
        }

        public void setSubflowConfig(String SubflowConfig) {
            this.SubflowConfig = SubflowConfig;
        }

        public int getNeedSign() {
            return NeedSign;
        }

        public void setNeedSign(int NeedSign) {
            this.NeedSign = NeedSign;
        }

        public MessageBean getMessage() {
            return Message;
        }

        public void setMessage(MessageBean Message) {
            this.Message = Message;
        }

        public String getInTimeFriendlyStr() {
            return InTimeFriendlyStr;
        }

        public void setInTimeFriendlyStr(String InTimeFriendlyStr) {
            this.InTimeFriendlyStr = InTimeFriendlyStr;
        }

        public static class MessageBean {
        }
    }
}
